import torch

x = torch.tensor([1.0, 2.0, 3.0], requires_grad=True)
y = x * 2
z = y.detach()  # z 不在计算图中

z.requires_grad = True  # 可以手动设置 z 参与梯度计算
w = z * 3
w.backward(torch.tensor([1.0, 1.0, 1.0]))  # 只计算 w 关于 z 的梯度
print(z.grad)  # 输出 z 的梯度